﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;

/// <summary>
/// Summary description for ModeloInicio
/// </summary>
public class ModeloInicio
{
    private String nombreUusuario;
    private String password;
    private String nombreRol;
    private Conexion conn;

    public ModeloInicio(String us ,  String pass)
	{
        nombreUusuario = us;
        password = pass;
        nombreRol = "";
        conn = new Conexion();
        
	}

    public String getNombreRol()
    {
        return nombreRol;
    }

    public String getNombreUusuario()
    {
        return nombreUusuario;
    }

    public bool validarModelo()
    {
        if (nombreUusuario == null || nombreUusuario.Length <= 0)
        {
            return false;
        }
        if (password == null || password.Length <= 0)
        {
            return false;
        }

        if (password.Length > 20 || nombreUusuario.Length > 30)
        {
            return false;
        }

        return true;
    }

    public int iniciarSesion() //Retornos : -2 : no me pude conectar a la bd, -3:excepcion, -1: usuario no existe. 
    {
        
        try
        {
            bool conectar = conn.iniciarConexion();
            if (conectar)
            {

                
                SqlCommand cmd = new SqlCommand("iniciarSesion", conn.getConn());
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.Add(new SqlParameter("@nombreUsuario",
                                                           SqlDbType.VarChar,
                                                           40,
                                                           "nombreUsuario"
                                                        )
                                        );

                cmd.Parameters.Add(new SqlParameter("@password",
                                                       SqlDbType.VarChar,
                                                       40,
                                                       "password"
                                                    )
                                    );

                cmd.Parameters.Add(new SqlParameter("@outParam",
                                                           SqlDbType.Int,
                                                           0,
                                                           ParameterDirection.Output,
                                                           false,
                                                           0,
                                                           0,
                                                           "outParam",
                                                           DataRowVersion.Default,
                                                           null
                                                        )
                                        );


                cmd.Parameters.Add(new SqlParameter("@outRol",
                                                           SqlDbType.VarChar,
                                                           40,
                                                           ParameterDirection.Output,
                                                           false,
                                                           0,
                                                           0,
                                                           "outRol",
                                                           DataRowVersion.Default,
                                                           null
                                                        )
                                        );


                cmd.Parameters[0].Value = nombreUusuario;
                cmd.Parameters[1].Value = password;
                cmd.UpdatedRowSource = UpdateRowSource.OutputParameters;

                int per = cmd.ExecuteNonQuery();

                int result = (int)cmd.Parameters["@outParam"].Value;
                String rol = (String)cmd.Parameters["@outRol"].Value;
                nombreRol = rol;

                conn.terminarConexion();

                return result;
            }

            else
            {
    
                return -2;
            }
        }

        catch (Exception exc)
        {
         
            return -3;
        }
        
     }
    
}